1. Field
The disclosure relates to a method, system, and article of manufacture for resource allocation in computing systems.
2. Background
A plurality of applications may execute within a computing environment that includes a plurality of resources, such as, memory, ports, etc. Resource provisioning is the process of providing the plurality of applications with access to the plurality of resources. For example, an exemplary application of the plurality of applications may be granted access to a resource included in the plurality of resources, based on certain criteria that may have been set up by an administrator of the computing environment.
Certain computing environments may support a cluster of computers, in which two or more computers are coupled to execute applications. Each computer that belongs to the cluster may be referred to as a node of the cluster. Certain operating systems may support resource provisioning of memory, processor utilization time, and other system resources for applications that are capable of running on the nodes of a cluster.
If resource provisioning is supported, an administrator may set minimum resource requirements for an application to execute on a node of a cluster. When an administrator sets minimum resource requirements for an application to execute on a node of cluster, these minimum resource requirements may reduce the availability of the application, i.e., the application may execute less frequently on the node in comparison to situations where no minimum resource requirements were set on the application. Such minimum resource requirements may prevent the application from being executed on one or more nodes of the cluster when the minimum resource requirements are not available for the application on the one or more nodes.
For example, a cluster may have a hundred nodes, and a first, a second, and a third exemplary application may each be set to execute with a minimum resource requirement of 51% of the memory of a node and 51% of the processing power of the node. In such a case, no more than one of the first, second, and third exemplary applications may execute in a node at the same time. Even though the exemplary cluster has a hundred nodes, no node of the cluster may execute any two applications of the first, second, and third exemplary applications at the same time, e.g., the first and the third exemplary applications cannot be executed on the same node at the same time. Thus, there is no flexibility allowed in the minimum resource requirements of resource provisioning and the lack of flexibility may result in a reduction in the utilization of the nodes of a cluster.